package model

import "fmt"

// 泛型类型 定义一个[]T类型切片 T可以是int或者string
type MySplice[T int | float64] []T

// 定义map泛型类型 map[K]V Key只能int或者string value只能是float32或者float64
type MyMap[K int | string, V float32 | float64] map[K]V

// 定义结构体字段类型
type MyList[T int | float64] struct {
	date []T
	len  int
	max  T
	min  T
}

// 泛型函数 go语言中的泛型是 []
// [T string | int] 可以是string类型 或者 int类型
// any 代表可以是任何类型
func PrintArray[T any](arr []T) {
	for _, value := range arr {
		fmt.Println(value)
	}
}

// 泛型函数
func Print[T any](a T) T {
	return a
}
